package priv.conceit.sc.hoxton.common.web.aop.anno;

import java.lang.annotation.*;
import java.util.concurrent.TimeUnit;

/**
 * sc-hoxton 防重复提交注解
 *
 * @author conceit
 * @since 1.0.0, 2020/9/30
 */
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface UnReSubmit {
	/**
	 *该接口是否需要认证 如果该接口是开放接口 不需要认证
	 *则不会从线程中获取该用户信息作为key,而是直接使用key作为校验的方式
	 *意味着该接口在指定的时长内 任何人都无法访问！！！
	 *
	 * 反之
	 * 会将用户信息作为key 与用户一一绑定
	 */
	boolean hasAuth() default true;

	/**
	 * 过期时间值 单位
	 *{@link java.util.concurrent.TimeUnit}
	 */
	TimeUnit timeOutUnit() default TimeUnit.SECONDS;

	/**
	 *过期时间值
	 */
	long timeOutValue() default 20;

	/**
	 * 自定义key 此值可以不用填写
	 */
	String key() default "";
}
